package com.dd.web.base.service;

import com.dd.web.base.entity.common.CommonPage;
import com.dd.web.base.entity.data.UmsAdmin;
import com.dd.web.base.entity.data.UmsMenu;
import com.dd.web.base.entity.data.UmsRole;
import com.dd.web.base.entity.view.AdminUserDetails;

import java.util.List;

/**
 * 后端用户登录
 */
public interface UmsAdminService {

    /**
     * 登录功能
     * @param username 用户名
     * @param password 密码
     * @return 生成的JWT的token
     */
    String login(String username, String password);

    /**
     * 查询管理员列表
     * @param pageNo 页码
     * @param pageSize 每页行数
     * @return
     */
    CommonPage<UmsAdmin> queryAdminList(int pageNo, int pageSize);

    /**
     * 查询用户信息
     * @param name 用户名
     * @return
     */
    List<UmsAdmin> queryAdminsByName(String name);

    /**
     * 获取用户详细信息+资源列表
     */
    AdminUserDetails loadUserByUsername(String username);

    /**
     * 根据用户名获取后台管理员
     * @param username 用户名
     */
    UmsAdmin getAdminByUsername(String username);

    /**
     * 根据用户id获取角色列表
     * @param adminId
     * @return
     */
    List<UmsRole> getRoleList(Long adminId);

    /**
     * 根据用户id获取资源列表
     * @param adminId
     * @return
     */
    public List<UmsMenu> getResourceList(Long adminId);

}
